#include <stdio.h>

#define ARRAY_SIZE 10

void print_array(int array[]);

void bubble_sort(int array[]);

/**
 * 冒泡排序和最大交换排序
 */
int main() {

	// 一个乱序数组
	int array[ARRAY_SIZE] = {7, 5, 0, 1,
							 3, 8, 9, 4,
							 2, 3};
	printf("\toriginal array \n");
	print_array(array);

	// 冒泡排序
	bubble_sort(array);


}

void print_array(int array[]) {

	printf("array: [");
	for (int i = 0; i < ARRAY_SIZE; i++) {
		printf("%d, ", array[i]);
	}
	printf("\b\b]\n");

}

void bubble_sort(int array[]) {

	int size = ARRAY_SIZE - 1;
	// 最后一位不作比较
	for (int i = 0; i < size; i++) {
		// 比较之后的值
		for (int j = i + 1; j < ARRAY_SIZE; j++) {
			int x = array[i];
			int y = array[j];
			// 小于比较值，位置交换
			if (y < x) {
				array[i] = y;
				array[j] = x;
			}
		}

	}

	// 打印排序后的数组
	printf("\tbubble sort\n");
	print_array(array);

}